The present invention relates generally to Global Positioning System ("GPS") signal receivers. More particularly, the present invention relates to a novel and improved technique for code synchronization and carrier synchronization within such receivers, the technique being highly insensitive to received multipath signal energy.
Overview of GPS and the Code Synchronization Problem
The global positioning system (GPS) may be used for determining the position of a user on or near the earth, from signals received from multiple orbiting satellites. The orbits of the GPS satellites are arranged in multiple planes, in order that signals can be received from at least four GPS satellites at any selected point on or near the earth.
The nature of the signals transmitted from GPS satellites is well known from the literature, but will be described briefly by way of background. Each satellite transmits two spread-spectrum signals in the L band, known as L1 and L2, with separate carrier frequencies. Two signals are needed if it is desired to eliminate an error that arises due to the refraction of the transmitted signals by the ionosphere. Each of the carrier signals is modulated in the satellite by at least one of two pseudorandom noise (PRN) codes unique to the satellite. This allows the L-band signals from a number of satellites to be individually identified and separated in a receiver. Each carrier is also modulated by a slower-varying data signal defining the satellite orbits and other system information. One of the PRN codes is referred to as the C/A (clear/acquisition) code, while the second is known as the P (precise) code.
In the GPS receiver, the signals corresponding to the known P-code and C/A code may be generated in the same manner as in the satellite. The L1 and L2 signals from a given satellite are demodulated by aligning the phases, i.e., by adjusting the timing, of the locally-generated codes with those modulated onto the signals from that satellite. In order to achieve such phase alignment the locally generated code replicas are correlated with the received signals until the resultant output signal power is maximized. Since the time at which each particular bit of the pseudorandom sequence is transmitted from the satellite is defined, the time of receipt a particular bit can be used as a measure of the transit time or range to the satellite. Again, because the C/A and P-codes are unique to each satellite, a specific satellite may be identified based on the results of the correlations between the received signals and the locally-generated C/A and P-code replicas.
Each receiver "channel" within the GPS receiver is used to track the received signal from a particular satellite. A synchronization circuit of each channel provides locally generated code and carrier replicas, which are synchronous with each other. During acquisition of the code phase within a particular channel, the received satellite signal is correlated with a discrimination pattern comprised of some combination of "early" and "late" versions of the channel's locally generated code replica. The resultant early-minus-late correlation signals are accumulated and processed to provide feedback signals to control code and carrier synchronization.
Historically, the phase difference between the early and late code versions generated within the GPS receiver has been equivalent to one code chip (i.e., 1.0 chip correlator spacing). A number of factors have contributed to widespread use of early-minus-late discrimination patterns relying upon 1.0 chip correlator spacing. For example, in analog GPS receivers this correlator spacing minimized the required hardware. Also, early GPS receivers typically utilized P-code (rather than C/A code) tracking, in which synchronization is established with relatively short-duration P-code chips. As a consequence, it was believed that the use of narrow correlator spacings, i.e., less than 1 chip, could result in loss of code lock due to Doppler and other disturbances. Such narrower spacings also increase the requisite speed of P-code signal processing circuitry, which is of necessity already relatively fast due to the high P-code chip rate.
Recently, digital GPS receivers relying upon C/A code tracking have been developed which employ correlator spacings of less than one C/A code chip. Such narrow correlator spacing is believed to reduce code-tracking error by increasing the correlation between the "early" and "late" noise contributions, which tend to cancel in the early-minus-late code discriminator. Although discrimination patterns characterized by narrow early-minus-late correlator spacing afford improved C/A code tracking, such early-minus-late discrimination schemes are still relatively sensitive to received multipath signal energy. Multipath signal energy arises due to reflections of the satellite signals from objects within the vicinity of the GPS receiver antenna. Since the multipath signals are processed together with the GPS signal directly received from the satellite, code and carrier tracking can be significantly corrupted by multipath errors.
Since multipath energy is always delayed relative to directly received GPS signals, multipath energy tends to corrupt the locally generated "late" version of a code signal rather than the early version. As a consequence, GPS receivers have been developed which utilize an "early-minus-prompt" discrimination pattern in the code correlation process. By forming the discrimination pattern based on the difference of the early and prompt, or "on-time", code replicas, it has been possible to somewhat reduce the deleterious effects of multipath. However, it is believed that substantially improved performance could be obtained through the use of discrimination patterns even less susceptible to adverse multipath effects.
Accordingly, it is an object of the present invention to provide a method of code synchronization which is even less sensitive to the effects of multipath than are techniques predicated on the use of "early-minus-prompt" discrimination patterns.
More Detailed Background--GPS Fundamentals
(a) Spread Spectrum Signal Fundamentals
Although there are several ways to create a spread spectrum signal, the one most often used is "direct spreading" with a pseudorandom code, which is the technique used in GPS. (Pseudorandom codes are often called PN or PRN codes, meaning pseudorandom noise codes.) The most frequently used pseudorandom code is a binary sequence, i.e., the signal has only two states, e.g., +1 or zero. It is equally valid and often useful to define the two states as +1 and -1. Each of these notations will be used in this discussion, depending on the circumstance.
The term "pseudorandom" refers to the fact that these codes appear to be a random sequence of +1's and -1's, but that the code is not truly random and repeats identically over and over. The two key characteristics of a pseudorandom code are its clock rate and its code length. The clock rate defines how often the code can change state (e.g., from +1 to -1 or from -1 to +1), and the code length defines how many bits, or chips, make up the code and, therefore, how often it repeats at a given clock rate. The GPS C/A code is clocked at 1.023 MHz, it has 1,023 bits, so it repeats 1,000 times per second.
(b) Autocorrelation Function
The autocorrelation function is a useful way to envision the properties of a pseudorandom code. Table I illustrates the autocorrelation function with a 15-bit code, (111100010011010), which has the same desirable properties as any maximal length pseudorandom code.
TABLE I ______________________________________ Illustration of Code Correlation Function ______________________________________ 11100010011010111100010011010 Two Repetitions of Reference Code 111100010011010 +15 Agreements, autocorrelation = 1 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 -1 Agreements, autocorrelation = -1/15 111100010011010 +15 Agreements, autocorrelation = 1 ______________________________________
The code states are shown as 0 and 1 for illustration convenience. On the top line, the 15-bit code is repeated twice. On the second line the 15-bit code is in perfect alignment with the first code sequence in the top line. Every bit in the second line agrees with the corresponding bit in the line above it. Therefore, with 15 agreements out of 15 possibilities, the autocorrelation has a value of 1, meaning 100% correlation. The last line in the table is seen to be perfectly aligned with the second code sequence in the top line. It also has 15 out of 15 agreements and an autocorrelation value of 1. The bits in every line between the second and the last agree with the corresponding bits in the top line only 5 times and disagree 6 times, for a net count of one disagreement. Therefore, a particularly useful characteristic of these codes is that a code shift of only one bit from perfect alignment causes the autocorrelation function to drop from +1 to -1/N, where N is the number of bits in the code. For a code length of 1,023 bits, the autocorrelation function drops from +1 at perfect alignment to -1/1023 with a one bit shift. For most practical purposes we can consider the autocorrelation function to be zero whenever codes are misaligned by one or more bits.
FIGS. 7A-7G show the same process as Table I. In this case, however, each code chip in FIGS. 7A-7F is drawn as a horizontal line with a width of one clock period. The 15-chip code repetition period also is designated. FIG. 7A depicts a continuing code sequence; FIG. 7B shows a replica of one code repetition period in perfect alignment with the code of FIG. 7A; and FIGS. 7C-7F show the same code sequence advanced in time by 1/4 chip, 1/2 chip, 3/4 chip and one chip, respectively. Finally, FIG. 7G plots the autocorrelation function with respect to time displacement, measured in chips. The purpose of this diagram is to illustrate that the autocorrelation function has a value of 1 at perfect alignment and drops linearly with increasing code displacement to the -1/N value with a displacement of one bit or more. The distance between autocorrelation peaks is the code repetition period, and the total width of the autocorrelation "pulse" is two chips or code clock periods.
GPS satellites transmit two codes, the C/A code and the P code. The C/A code has a clock period of about 977.5 nanoseconds and a code repetition period of 0.001 second. The P code has a clock period of about 97.75 nanoseconds and a code repetition period of one week.
(c) Spread Spectrum Signal
A direct sequence spread spectrum signal is normally created by bi-phase modulating a narrowband signal with a pseudorandom code, as shown in FIGS. 8 and 9A-9C. FIG. 8 shows a biphase modulator 300, which modulates a carrier received on line 302 with a code signal received on line 304, outputting the modulated carrier on line 306. The carrier is depicted in FIG. 9A, the code in FIG. 9B and the modulated, spread-spectrum output signal in FIG. 9C. The carrier and the code are not necessarily drawn to the same scale and are shown only for purposes of illustration. When the code is in the +1 state, the carrier signal is not inverted. When the code is in the -1 state, the carrier signal is inverted.
The spectral result of this process is shown in FIG. 10. The original carrier frequency at F.sub.o is suppressed, and the total signal energy is spread over a bandwidth around F.sub.o of plus and minus the code clock frequency to first nulls. Spectral components outside this bandwidth also are created, but at ever lower amplitude with frequency separation.
FIG. 10 also shows a line structure within the spread spectrum envelope. These spectral lines occur at the code repetition frequency. The GPS L1 carrier frequency of 1575.42 MHz carries both a C/A code and a P (or Y) code. The C/A code energy is spread over a bandwidth of .+-.1.023 MHz around L1, and the signal has spectral components every 1 kHz, which is the C/A code repetition frequency. The P code is spread over a bandwidth .+-.10.23 MHz around L1, and the spectral components are at an undetectable one cycle per week, which is the P code repetition frequency.
(d) GPS Signal Structure
FIG. 11 is a highly simplified block diagram of a GPS satellite. In light of the preceding sections, this diagram explains the nature of the GPS signals. FIG. 11 shows that there are five key functions of the satellite, all driven by a single atomic clock 310 with a frequency of 10.23 MHz. The L1 carrier frequency of 1575.42 MHz is obtained by multiplying 10.23 MHz by 154, as indicated by frequency multiplier 312. The L2 carrier frequency of 1227.6 MHz is 120 times the clock and is obtained through another frequency multiplier 314. The P code rate is 10.23 MHz and is obtained directly from the clock 310. The C/A code rate is one tenth the clock frequency and is obtained through a frequency divider 316. Even the 50 bit per second data rate from the memory is derived from the atomic clock 310, through another frequency divider 318. It can be said that all of these signals are coherent because they are derived from a single clock.
Each GPS satellite normally transmits three navigation signals. One is on the L2 carrier signal and is based on the P code from a P code generator 322, and two are on the L1 carrier signal and are based on the P code from the P code generator and the C/A code from a C/A code generator 324, respectively. To accomplish this, the L1 carrier signal is first divided into two components that are in phase quadrature, as indicated at 320. Each of these components is individually modulated with navigation signals before being combined, amplified, and transmitted.
A memory 326 produces data at 50 bits per second. These data bits are combined in EXCLUSIVE OR gates 328 and 330, respectively, with the C/A code and with the P code. The effect is to invert or not to invert the polarity of the code bits depending on whether the current data bit is a zero or a one. The combined C/A code with data bits is used to biphase modulate one of the two L1 components, creating a spread spectrum signal as described previously. The combined P code with data bits is used to bi-phase modulate the other L1 component and the L2 carrier signal.
(e) GPS Anti-Spoofing
The U.S. Department of Defense, which operates the Global Positioning System, wants to prevent an enemy from spoofing their GPS receivers by transmitting a false signal which could be accepted as real. This is accomplished in the GPS satellites by encrypting the P code before it is transmitted. The process is called anti-spoofing (AS), and the resultant code is called the Y code. As described in U.S. Pat. No. 4,972,431, issued in the name of Richard G. Keegan, the Y code is an EXCLUSIVE OR combination of the 10.23 MHz P code and an encryption code which is clocked at approximately 500 kHz.
Purpose and Advantages of Tracking Spread Spectrum Signals
FIG. 12 and FIGS. 13A and 13B illustrate a basic spread spectrum signal tracking concept. "Tracking," in the context of this invention, is synonymous with synchronization. The spread spectrum signal (FIG. 13A) being received by an antenna 332 is the product of a narrowband signal S and the pseudorandom code C. This signal plus the incoming wideband noise N are biphase modulated, as indicated at 334 with a locally generated version of the same code C. When the time phase of the received code and the locally generated code are accurately aligned, the biphase modulation originally applied to the signal is canceled by again modulating the signal with the same code. The result is the original narrowband signal S before it was initially modulated. The narrowband signal S now can be filtered by an appropriately narrow filter 336, which allows the entire signal through but rejects most of the wideband noise, as indicated in FIG. 13B.
Note that cancellation of the biphase modulation does not occur unless the two codes are identically the same and are accurately aligned, meaning that the autocorrelation function of the two codes must be near one. This characteristic explains why it is possible for all GPS satellites to transmit on the same L1 and L2 frequencies. Each satellite uses a different C/A and P code. Therefore, a receiver, or one channel of a multi-channel receiver, can select a single GPS satellite signal by using the appropriate pseudorandom code for that particular satellite. This process is called Code Division Multiple Access (CDMA).
To achieve the required time phase alignment of the locally generated code with the received code, a code search and tracking function is required. An important benefit of the code tracking function is to locally measure the time of arrival of the received code time phase. This is the process used to make pseudorange measurements on GPS signals. (Ignoring ionospheric and tropospheric refraction effects, if the time of transmission and time of reception of a GPS signal were known precisely, the difference between these times multiplied by the speed of light would give an accurate measure of the distance between the satellite and the receiver. The term pseudorange is used to designate the distance calculated by multiplying the speed of light by the difference between the locally determined receive time and the GPS transmit time. This calculated value contains a bias due to the local clock error, hence the term pseudorange. Simultaneous pseudorange measurements on multiple satellites each contain the same bias, which is removed as part of the navigation calculation.)
An important benefit of spread spectrum signal processing is that the effect of narrowband interfering signals is greatly reduced. When a spread spectrum communication signal is "despread" at a receiver to recover the communication signal in narrowband form, any interfering narrowband signal is simultaneously spread over a wider bandwidth and can be largely removed by filtering.
Digital Tracking Methods
FIG. 14 is a simplified block diagram of a spread spectrum receiver, using digital signal processing techniques, which is typical of modern GPS receivers. Although this receiver is conventional, one needs to understand its function and operation in order to appreciate the specific problems addressed by the present invention. In the receiver, a single antenna 340 collects all available signals, which are processed through a filter 342, an amplifier 344 and, optionally, a downconverter 346 to obtain a lower IF frequency for further processing. Next, the composite signal is digitally sampled, as indicated by the sampler 348 and clock 350.
A number of digital sampling techniques can be used, of which there are three key characteristics. These are: (1) sampling rate, (2) sample quantification, and (3) single or dual phase sampling.
The sampling rate must be chosen to adequately reproduce the signal in digital form (Nyquist rate) without too much loss of signal-to-noise ratio and without folding out-of-band noise into the signal bandwidth (a phenomenon known as aliasing). Signal sampling also often performs a frequency downconversion of the sampled signal. If the carrier frequency (whether present or suppressed) of the signal being sampled has a frequency of (N+.delta.) cycles per sample clock period, where .delta. is a fraction between .+-.0.5, the carrier frequency of the sampled signal will be .delta.F.sub.S, where F.sub.S is the sampling frequency. For example, if .delta. were 0.25, the phase of the sampled signal would rotate by one quarter of a cycle between samples. The nominal value of 0.25 is not required, but it is typical because of design constraints. A smaller fraction reduces the sampled carrier frequency, which must be high enough to support the full spread spectrum bandwidth without folding at zero frequency. A larger fraction raises the sampled carrier frequency, and with it the upper edge of the spread spectrum signal, which cannot exceed the sampling frequency without aliasing.
Digital samples quantify the composite signal amplitude. The least complex sample is a one-bit quantification of the composite signal. At each sample clock, the sampler only reports whether the signal is positive or negative. More complex digital samplers quantify the signal amplitude at each sample clock into three or more levels. Compared with binary sampling, higher resolution sampling improves signal-to-noise ratio and permits certain types of interfering signals to be attenuated. In addition to a more complex signal sampling circuit, multi-level sampling requires use of an automatic gain control (AGC), not shown, to adjust the signal amplitude to best match the available quantification levels. (Alternatively, the quantification levels can be adjusted to best match the input signal level.)
In processing digital samples, it is necessary to form two signal components, usually called I and Q for in-phase and quadrature components. These components are in phase quadrature with each other, as are the sine and the cosine of an angle. These I and Q components can be created directly by the sampler 348, or they can be formed in later processing. The latter approach is shown in FIG. 14.
FIG. 14 shows only one channel of a multi-channel receiver. Identically the same signal samples are fed to every channel, so there is no relative time delay between channels. As also shown, each channel includes a code generator (PRN coder 350) and a numerically controlled oscillator (NCO 352). The components above these central elements in the figure are used to track the phase of the sampled carrier frequency, and the components below are used to acquire and track the pseudorandom code. These processes are described in the following sections. Briefly, phase tracking is accomplished using a Costas carrier tracker 354, which controls the NCO 352 to effect phase tracking with the received carrier. Code tracking is accomplished with a code tracker 356, which controls the code generator 350 to effect synchronization with the received code signals.
Carrier Phase Tracking
To begin this description, it is assumed that the code and carrier phase tracking loops in FIG. 14 are synchronized and running properly. This means that the punctual code coming from the PRN Coder 350 is accurately aligned with the same code on the received signal being sampled. The word "punctual" means that the code is aligned as well as possible, rather than having an intentional offset. As a result, correlating the sampled signal with the punctual code produces a narrowband signal which is biphase modulated only by the data bits. In the case of GPS, the data bits modulate the narrowband carrier at a rate of 50 bits per second.
When the numerically controlled oscillator (NCO 352) is phase locked to the incoming signal, it creates two outputs, I Reference and Q Reference, which are in phase quadrature (have a 90-degree phase shift relative to each other) and have precisely the same frequency as the downconverted, intermediate carrier frequency of the sampled signal. These two signals are each correlated (as indicated at 358 and 360) with the output of a punctual code correlator 362 to produce I Punctual and Q Punctual baseband signal components, which are input both to the Costas carrier tracker 354 and to the code tracker 356.
With vector notations in mind, FIGS. 15A and 15B illustrate the I and Q correlation process taking place in the receiver of FIG. 14. FIG. 15A shows the I and Q correlators, each with its own reference signal. Between these two reference signals in figure, is the input signal. Note that the two reference signals are in phase quadrature and that the input signal is precisely in phase with the upper reference signal. Each correlator multiplies one of its inputs by the other. The output of the I correlator 358 is the product of the sine function times another perfectly aligned sine function. From trigonometry, EQU sin.sup.2 x=1/2[1-cos(2.times.)]
Thus the I correlator 358 output is a constant value of +1/2 plus a cosine function at double the input frequency. The purpose of these correlators 358 and 360 is to produce very slowly varying signals, which can be used to control the tracking functions. Therefore, the correlator output signals are passed through a low pass filters 364 and 366 to obtain the slowly varying signals and to reject the high frequency components. Thus, the output of the I correlator 358 is represented by a stationary, non-rotating, positive vector 368, which is proportional to the incoming signal strength.
The output of the Q correlator is the product of the sine function times a cosine function of the same frequency. From trigonometry, EQU sin.times.cos.times.=sin 2.times.
Thus, the Q correlator output has only a high frequency component. When this is low-pass filtered, the output is zero, which is represented by a horizontal vector 370 with its tip at the zero amplitude position.
A more general trigonometric expression of such products is EQU sin(.omega.t+.omega.)sin(.omega.t)=1/2[cos(.omega.)-cos (2.omega.t+.omega.) ] EQU sin(.omega.t+.omega.)cos(.omega.t)=1/2[sin(2.omega.t+.omega.)+sin(.omega.)]
where .omega. is the phase rate (2.pi.F) and .omega. is the signal phase offset.
This shows that the product of two sinusoids with the same frequency but with different phase offsets results in a high frequency term at twice the input frequency and a low frequency term with its amplitude proportional to the cosine of the phase difference between the two signals. The low pass filter eliminates the high frequency term, leaving only the low frequency term. Therefore, if the input signal shifts in phase relative to the two reference signals, the I and Q output vectors will rotate, decreasing the I value and causing a positive or negative Q value, depending on the direction of the phase shift.
FIG. 15B illustrates what happens when the phase of the input signal is inverted due to the data modulation. Specifically, both the I and Q vectors flip to the opposite direction, representing a 180-degree phase shift of the input signal.
Conventional phase-locked loops use the Q vector as an error signal in a control loop which locks the reference signal to the phase of the signal being tracked. When the loop is correctly locked, the Q vector output is at zero. If the phase of the input signal changes relative to the reference signal, the Q vector rotates counterclockwise or clockwise, depending on the direction of the phase shift, producing a positive or a negative error voltage which drives the loop to eliminate the phase error. However, if the input signal is biphase modulated by data bits, the Q error signal also is modulated. A positive error voltage during a +1 data bit becomes an equal negative error voltage during a -1 data bit. As a result, the Q signal cannot be used directly as an error signal to phase track biphase modulated signals.
A solution to this problem is shown in FIGS. 16A and 16B. The polarity of the I signal is detected, as indicated diagrammatically at 368, and used to rectify the Q signal. As a result, a positive Q error voltage during a +1 data bit and a negative Q error voltage during a -1 data bit both produce a positive output error voltage. This configuration is called a Costas loop, labeled as the Costas carrier tracker 354 in FIG. 14, and it permits phase locked tracking of biphase modulated signals. One consequence of the Costas loop is that it will lock and track successfully at either of two carrier phase values which are 180 degrees apart. At one phase the I vector is positive for +1 data bits, and at the other the I vector is negative for +1 data bits. Data content rather than I vector polarity must be used to distinguish +1 bits from -1 bits.
FIGS. 16A and 16B also show that the low-pass filtering process is implemented with an integrate and dump (I/D) function 370, 372. The output of this function is the integral of the input signal, which is equivalent to a good low-pass filter. The integrator is reset to zero, or dumped, upon command. For example, the I integrator is reset at the beginning of each new data bit. As a result, the I output at the end of each data bit provides the best estimate of whether the data bit was 1 or 0. This data bit demodulation process provides the message data from the Costas carrier tracker 354 of FIG. 14.
If the Q value were needed only once per data bit, it would be best to integrate both the I and Q signals for an entire data bit period before rectifying the Q signal with the polarity of the I signal. If the bandwidth of the phase-locked loop requires a Q input more often than the data rate, the Q integrator is read and dumped at the necessary rate, but the I integration continues over the entire bit interval, improving the I output signal to-noise-ratio as the integration time increases.
The Costas carrier tracker 354 of FIG. 14 controls the numerically controlled oscillator (NCO 352) so that the I and Q reference signals are phase locked to the incoming carrier signal. Thus, the phase of the NCO signal accurately represents the phase of the received carrier signal and can be measured and compared with the phase of other satellite signals at discrete time marks. This is the basis for high precision navigation or positioning with carrier phase signals.
Code Tracking
(a) Early Minus Late Code Tracking
Because the code and carrier signals from the satellite are coherent, the NCO 352 in FIG. 14 also is able to clock the PRN code generator 350 at very nearly the correct rate. Although carrier aided code tracking is not mandatory, it does improve code tracking accuracy. There is a small error in the aiding rate due to the effect of the earth's ionosphere on a GPS signal. Being a dispersive medium, the ionosphere advances the phase of the carrier signal and retards the time (phase) of the code modulation. Therefore, a code tracking function is needed not only to find the proper code phase initially but also to track out the slow divergence between the code phase and the carrier phase.
In the receiver example of FIG. 14, code tracking is achieved by first correlating the signal samples with an early-minus-late (E-L) version of the local code, as indicated at 380. The output of this correlation step is then correlated with both carrier phase reference signals, I Reference and Q Reference, as indicated at 382 and 384, to produce vectors I.sub.E-L and Q.sub.E-L. Note that I Punctual (I.sub.P) and I.sub.E-L are identical except for the difference caused by the effect of first correlating with an E-L code rather than with a punctual code. The same can be said for Q.sub.P and Q.sub.E-L. Therefore, the next step is to examine the effect of E-L correlation on the vectors shown in FIGS. 15A and 15B.
FIGS. 17(A-H) illustrates eight code segments. FIG. 17A shows a segment of received code. FIG. 17B is a properly aligned local code segment, such as the punctual code of FIG. 14. As shown before, the product of the received code with a properly aligned punctual code results in a narrowband signal with maximum amplitude. This relationship is represented by the peak of the autocorrelation function of FIG. 7G.
FIG. 17C, labeled early code, is the same as the second, except that it has been shifted early in time phase by a half chip. Similarly, FIG. 17D, labeled late code, has been shifted late by a half chip.
FIG. 17E, labeled early minus late, is the early segment minus the late segment, which could be used as the E-L Code of FIG. 14. Note first that the E-L code has three amplitude levels rather than just two, i.e., +1, 0, and -1. With reference to FIG. 14, when the E-L code is at zero, no signal samples pass through the E-L code correlator 380. Next, note that the E-L code has a zero value whenever the punctual code does not transition, e.g., at the time of a code clock where no transition occurs. The illustrated E-L code is at +1 whenever the punctual code transitions from -1 to +1, and it is at -1 whenever the punctual code transitions from +1 to -1.
In the case illustrated by FIG. 17, the E-L code is seen to be a series of windows centered on punctual code transitions, with the polarity of the window determined by the direction of the corresponding transition. Note that the window can be formed either by differencing two separate correlators, one referenced with a continuous early code and one with a continuous late code, or by a single correlator referenced with an E-L code window.
FIG. 17F, labeled punctual E-L product, is the product of the received code with the E-L code. The product is, of course, at zero whenever the E-L code is zero. Elsewhere, the product has equal durations of positive and negative values, so the average value of the product segment is zero.
FIG. 17G, labeled delayed early minus late, is a delayed version of the E-L code, and FIG. 17H, labeled delayed product, is the product of the received code and the delayed E-L code. In this example, the duration of positive and negative product values are not equal, so the average value of this segment is positive.
With respect to FIG. 14, it should be clear that the average amplitude of both I.sub.E-L and Q.sub.E-L will be zero when the punctual code is properly aligned with the received code, because with that alignment the product of the signal with the E-L code averages to zero. However, the I.sub.E-L and Q.sub.E-L vectors grow larger if the perfect alignment is disturbed. Furthermore, the polarity of these vectors is reversed if the misalignment is a delay rather than an advance. As a result, these vectors are used as an error signal by the code tracker 356. The code tracker 356 adjusts the time phase of the PRN coder 350 to minimize the code error function and thus achieve proper alignment with the received code. Because of this, the time phase of the PRN coder 350 accurately represents the time phase of the received code signal, and it can be measured and compared with the time phase of other satellite signals at discrete time marks. This is the basis for navigation and positioning with code measurements.
Note that I Punctual (I.sub.P), Q Punctual (Q.sub.P), and the message data (D) bit signals also enter the code tracker 356 of FIG. 14. The first purpose of this is to rectify the I.sub.E-L and Q.sub.E-L signals to remove the phase reversal effect of data bit modulation on these signals. When the Costas loop is properly locked, both Q.sub.P and Q.sub.E-L remain at zero, so that only I.sub.E-L provides a useful signal for the code error function. In this case, I.sub.P is rectified by the data bit value D, i.e., (I.sub.P)(D), so the code error function is not affected by the data modulation. However, it is often necessary to search for proper code alignment before the Costas loop has locked. In this case the I and Q vectors are rotating at the frequency difference between the received carrier signal and the NCO (352) frequency. By summing (I.sub.P)(I.sub.E-L) and (Q.sub.P)(Q.sub.E-L), the result is a scalar value, which can be used as a code error function before the Costas loop locks to the carrier signal.
FIGS. 18A-F provide a convenient way to visualize the error function created by the product of the received code and the E-L code. FIG. 18A shows a received code segment. FIG. 18B shows a single E-L window centered on the downward code transition of FIG. 18A. The received code signal that is allowed through the window is positive during the first half of the window and negative during the second half, for an average value of zero. The arrow in the center of the window points downward toward the code error function plotted in FIG. 18F, which has zero value at that point. FIGS. 18C, 18D and 18E show three other earlier positions of the E-L window relative to the received code, these being one half chip advanced (FIG. 18C), one full chip advanced (FIG. 18D), and 1.5 chip advanced (FIG. 18E). At the half chip advanced position, the portion of the received code allowed through the window is always positive. This positive value is inverted by the -1 state of the window, so at that position the code error function (shown in FIG. 18F) has its maximum negative value.
The explanation for the value of the code error function at the full chip and at the 1.5 chip advanced E-L window is not as obvious as for the other two positions considered above. For simplicity, FIG. 18A shows only one small portion of a code which, in its entirety, has at least hundreds of transitions. For example, the GPS C/A code of 1023 bits has 512 transitions. Therefore, because of the decorrelation properties of PRN codes, the probability of a transition occurring, or not occurring, at any code clock pulse essentially is 50%. FIGS. 18A-18E illustrate this by showing that the received code could be either positive or negative one chip from the transition being considered. As a result, by advancing the E-L window by one full chip, it will be centered on another transition half of the time and on no transition, in this example remaining positive, the other half. Thus, the average result is a negative value one-half as large as the maximum negative value of the code error function. The 1.5 chip advanced window has an equal probability of seeing +1 or -1, for an average value of zero. FIG. 18F therefore illustrates how the code error function is formed.
The code tracking loop searches for the received signal by testing different time phase values, usually stepping one-half chip at a time. When the local code is less than one chip from alignment with the received code, signal energy will be detected by the Costas loop and a code error function will be detected by the code tracker 356. The code tracking function drives the code in one direction for a positive error and in the other direction for a negative error. The objective is to seek and to maintain an error value of zero at the center of the error function, which represents proper alignment of the two codes.
(b) Effect of Multipath on Code Tracking
It would be ideal if the only signals reaching the receiver's antenna came directly from the signal source, e.g., GPS satellites. Unfortunately, signals come not only directly but also indirectly by being reflected from local objects. FIG. 19 is a simplified, two-dimensional view of this reality. Because the orbit of a GPS satellite is more than 11,000 miles above the earth, its signals appear to arrive at exactly the same angle at every location within a local area. This is why FIG. 19 shows the incoming signals from one satellite as parallel lines. Because there are many reflected signals, and only one direct signal, the term multipath interference is used. In FIG. 19, only two multipath signals are illustrated, one from a low angle and one from a high angle. It is evident that every reflected signal must travel a greater distance to the receiving antenna than the direct signal.
Although normally there are many reflected signals, the explanation of the multipath effect is simplified by considering only one reflected signal at a time. By the principle of superposition, the composite effect of many multipath signals can be obtained by summing the individual effect of each one.
To evaluate the effect, FIGS. 20A-20C show the received code and the E-L code error function of FIG. 18, but it also illustrates the effect of one multipath signal. There are three key characteristics of such a reflected signal. First, because it must travel a longer path than the direct signal, it always is delayed relative to the direct signal. Second, because of the longer path, the phase of its carrier frequency is shifted relative to that of the direct signal, often by many cycles. Because the wavelength of the GPS L1 signal is approximately 19 centimeters, every centimeter of extra path length causes about 19 degrees of phase shift. With such high sensitivity of phase angle to path length, it is evident that the relative phase of a reflected signal has a uniform probability of being any value between zero and 360 degrees. Even so, when a GPS receiving antenna is stationary, the phase difference between the direct signal and a signal reflected from a stationary object can be quite stable. Depending on the geometry, the path length difference can change very slowly, because GPS satellites are far away and their angular motion therefore is slow. Finally, and fortunately, it usually is true that the reflected signal reaches the antenna with a lower signal level than the direct signal due to losses and polarity reversals experienced when the signal is reflected. The code error function for the directly received code is plotted at 390 in FIG. 20C, and is identical with the code error function of FIG. 18F.
For illustration purposes, the received multipath code of FIG. 20B is shown at half the amplitude of the direct signal of FIG. 20A, with a delay of one quarter chip, and with opposite polarity due to an assumed 180 degree carrier phase difference relative to the direct signal. Given this multipath signal as an example, there is a corresponding received multipath code error function, shown at 392 in FIG. 20C. Relative to the direct code error function, the multipath code error function has half the amplitude, it is delayed by one quarter chip, and it has opposite polarity. FIG. 20C also shows the sum of these two error functions, labeled error sum, at 396. If the relative carrier phase were zero rather than 180 degrees, the received multipath code error function would be inverted, and the corresponding composite result is shown by the error function labeled error difference, at 398, which is the directly received code error function minus the received multipath code error function.
The code tracking function cannot discriminate between the direct error function and the multipath error function. Therefore, it adjusts the code time phase to bring the sum of the error functions to a value of zero. FIG. 20C also shows the location of the track point with the illustrated multipath signal (400), without a multipath signal (402), and with the non-inverted multipath signal (404). These track points are labeled track point with error sum, punctual track point without multipath, and track point with error difference, respectively. Note that even though the multipath signals always arrive later than the direct signal, the track point can be advanced as well as delayed by multipath.
An important observation from FIG. 20C is that the track point advance always is greater than the track point delay, i.e., the effect is asymmetric about the multipath-free track point 402. It is often thought that motion of the receiving antenna relative to reflecting objects eliminates the effect of multipath from these objects. The reason is that the carrier phase difference between the direct and the reflected signals changes so rapidly with motion of the receiving antenna that a narrowband code tracking loop will not follow the rapid excursions. However, because of the asymmetric effect, even rapidly changing multipath signals will induce an early bias in the track point.
Basic Approaches to Code Multipath Mitigation
Over the years, a number of multipath mitigation techniques have been developed. Those used for GPS fall into three broad categories. The first is filtering, in which carrier phase measurements are used to define code dynamics very precisely, which, in turn, allows the code measurements to be smoothed with a long time constant filter to remove much of the multipath noise. A second technique employs additional correlators in each channel to characterize the shape of the autocorrelation function and thereby draw conclusions about the effect of the multipath error. A third approach is to modify the shape of the tracking window to minimize the effect of multipath signals. The earliest form of this third technique is the narrow correlator.
(a) Narrow Correlator
An important multipath mitigation technique is the narrow correlator. This concept is illustrated by FIGS. 21A-21F. As in FIGS. 18A-18F, the error function is formed by means of an early-minus-late (E-L) window centered on code transitions, with its polarity determined by the direction of the transition. In this case, however, the window is quite narrow relative to the period of the code chip. As a result, the maximum amplitude of the narrow correlator code error function is shown to be limited relative to the wide correlator code error function. FIG. 21A shows a received code signal, and FIGS. 21B-21E depict a narrow E-L window aligned with a code transition (FIG. 21B), and advanced by a half chip, one chip and 1.5 chip, respectively (FIGS. 21C, 21D and 21E). The corresponding code error function is plotted as a solid line in FIG. 21F, in comparison with the code error function for the wide correlator discussed earlier, plotted as a broken line.
FIGS. 22A-22D show how the narrow correlator dramatically reduces the impact of multipath signals. FIGS. 22A and 22B show the directly received code and an example of a received multipath code, and FIG. 22C shows the code error functions for the two; these curves being identical with those shown in FIG. 20C. FIG. 22D shows for comparison the code error functions for the directly received and received multipath codes when a narrow correlator is used. Significantly, the track point advance and delay due to multipath signals with a delay somewhat greater than half the window width become symmetric about the multipath-free track point, as indicated by the track points at 400', 402' and 404'. Therefore, not only is the effect of static multipath greatly reduced, but the residual bias from multipath signals with a delay somewhat greater than half the narrow correlator window width is eliminated. As a result, motion of the receiving antenna relative to reflecting objects does effectively eliminate the effect of multipath from these objects.
The narrow correlator has a disadvantage in searching for a signal. When a signal is first detected, the received and local codes may be misaligned by a large fraction of a chip. In this case, the wide correlator provides a much larger error signal than the narrow correlator. As a result, the wide correlator will pull the tracking loop into alignment much faster than the narrow correlator. Once the codes are aligned within the central linear slope region of the narrow correlator error function, both the wide and the narrow correlator provide identically the same direct path error signal to the tracking loop with sufficient receiver bandwidth. (The narrow correlator error function slope can be attenuated if the receiver bandwidth is restricted.) Therefore, it is customary to use a wide correlator during signal acquisition and then switch to the narrow correlator for tracking after initial code alignment.
Effect of Multipath on Phase Measurement
As noted above, highly accurate navigation or positioning measurements can be obtained from measurements of carrier phase. When multipath signal components are present, however, the receiver tracks the composite phase of the direct signal plus all of the multipath signals. In effect, the direct signal carrier measurements are distorted by the multipath components. An important object of the present invention is to reduce or eliminate the effects of multipath signals on the measurement of carrier signals.
Conclusion of Background
In view of the foregoing, it will be understood that there is an ongoing need for improvement in the accuracy of navigation and position signals derived from the GPS, and that a significant source of errors in GPS measurements is the presence of multipath signal energy at the receiver. Ideally, what is needed is a system for eliminating or dramatically reducing multipath effects on code and carrier synchronization, and thereby improving the speed and accuracy of GPS measurements and position solutions. The present invention satisfies this need.